}
}
if (trkopt &&
- (ed->arcpt2->creation_time != 0) &&
- (ptsopt || (ed->arcpt1->creation_time != 0))) {
+ (ed->arcpt2->GetCreationTime().isValid()) &&
+ (ptsopt || (ed->arcpt1->GetCreationTime().isValid()))) {
/* Interpolate time */
if (ptsopt) {
wp->creation_time = ed->arcpt2->creation_time;
buff[0] = '\0';
- if (wpt->creation_time != 0) {
+// TOOD: This should probably attempt a gmtime and then fall back to the 1-1-1970
+// case or bypass the time_t completely and build string representations directly.
+ if (wpt->creation_time.isValid()) {
const time_t tt = wpt->GetCreationTime();
struct tm tm = *gmtime(&tt);
gbfputint32(0, fout);
}
- if (wpt->creation_time) {
+ if (wpt->creation_time.isValid()) {
struct tm tm;
double milliseconds;
int date;
- const time_t ct = wpt->GetCreationTime();
+ const time_t ct = wpt->GetCreationTime().toTime_t();
tm = *gmtime(&ct);
tm.tm_mon += 1;
tm.tm_year -= 100;
static void
exif_find_wpt_by_time(const waypoint* wpt)
{
- if (wpt->creation_time <= 0) {
+ if (!wpt->creation_time.isValid()) {
return;
}
id = rec_ct;
}
- tx = (wpt->GetCreationTime() != 0) ? wpt->GetCreationTime() : gpsbabel_time;
+ if (wpt->GetCreationTime().isValid()) {
+ tx = wpt->GetCreationTime().toTime_t();
+ } else {
+ tx = gpsbabel_time;
+ }
if (tx == 0) { /* maybe zero during testo (freezed time) */
strcpy(datestr, "01/01/1904"); /* this seems to be the uninitialized date value for geoniche */
strcpy(timestr, "00:00:00");
wpt->altitude == unknown_alt ? 0 : wpt->altitude
);
- if (wpt->creation_time) {
+ if (wpt->creation_time.isValid()) {
char tbuf[20];
int hms, ymd;
struct tm* tm;
- const time_t tt = wpt->GetCreationTime();
+ const time_t tt = wpt->GetCreationTime().toTime_t();
tm = gmtime(&tt);
hms = tm->tm_hour * 10000 + tm->tm_min * 100 + tm->tm_sec;
ymd = tm->tm_mday * 10000 + tm->tm_mon * 100 + tm->tm_year;
lat = geodetic_to_geocentric_hwr(wpt->latitude);
north = si_round(inverse_gudermannian_i1924(lat));
- if (wpt->creation_time != 0) {
+ if (wpt->creation_time.isValid()) {
last_time = wpt->GetCreationTime();
}
// iGo8 appears to expect a time, if one isn't provided
// then we shall make our own, where each point is one
// second apart.
- if (wpt->creation_time == 0) {
- le_write32(&point.unix_time, invented_time++);
- } else {
+ if (wpt->creation_time.isValid()) {
le_write32(&point.unix_time, wpt->GetCreationTime());
+ } else {
+ le_write32(&point.unix_time, invented_time++);
}
// Write the first part of the Information Block, the start time
char stime[10], sdate[7], scourse[6], sspeed[8];
struct tm tm;
- if (wpt->creation_time > 0) {
+ if (wpt->creation_time.isValid()) {
const time_t tt = wpt->GetCreationTime();
tm = *gmtime(&tt);
buffer[10] = 0;
buffer[11] = 0;
encode_position(waypt, buffer + 12);
- encode_datetime(waypt->GetCreationTime(), buffer + 22);
+ encode_datetime(waypt->GetCreationTime().toTime_t(), buffer + 22);
buffer[28] = find_icon_from_descr(waypt->icon_descr);
buffer[29] = 0;
buffer[30] = 0x00;
le_write32(buffer + 4, x);
le_write32(buffer + 8, y);
encode_position(waypt, buffer + 12);
- encode_datetime(waypt->GetCreationTime(), buffer + 22);
+ encode_datetime(waypt->GetCreationTime().toTime_t(), buffer + 22);
buffer[28] = z;
buffer[29] = MPS_TO_KPH(WAYPT_GET(waypt, speed, 0) / 2);
buffer[30] = 0x5a;
buff = ppdb_strcat(buff, ",", NULL, &len);
/* 4 time, date */
- if (wpt->creation_time != 0) {
+ if (wpt->creation_time.isValid()) {
tmp = str_pool_get(20);
- const time_t tt = wpt->GetCreationTime();
+ const time_t tt = wpt->GetCreationTime().toTime_t();
tm = *gmtime(&tt);
strftime(tmp, 20, datefmt, &tm);
buff = ppdb_strcat(buff, tmp, NULL, &len);
*trkdatap = tdata;
}
- first.latitude = 0;
- first.longitude = 0;
- first.creation_time = 0;
+// first.latitude = 0;
+// first.longitude = 0;
+// first.creation_time = 0;
tdata->min_hrt = 9999;
tdata->min_alt = -unknown_alt;
tdata->max_alt = unknown_alt;
return t;
}
- time_t operator--(int) {
- setTime_t(toTime_t() - 1);
- return toTime_t();
- }
-
- time_t operator++(int) {
- setTime_t(toTime_t() + 1);
- return toTime_t();
- }
-
time_t operator+=(const time_t& t) {
setTime_t(toTime_t() + t);
return toTime_t();
xol_write_string("name", name);
xol_write_string("comment", wpt->notes);
xol_write_string("icon", wpt->icon_descr.toUtf8().data());
- if (wpt->creation_time) {
+ if (wpt->creation_time.isValid()) {
xol_write_time(wpt);
}
if (wpt->altitude != unknown_alt) {
}
gbfprintf(fout, "%*s<shape type=\"waypoint\"", space++*2, "");
- if (wpt->creation_time) {
+ if (wpt->creation_time.isValid()) {
xol_write_time(wpt);
}
if (wpt->altitude != unknown_alt) {